package jhlee42;

public class J17StringMath {
	public static void main(String[] args) {
		
		int a = 3;
		String b = a;
		
		
		// String
		
		// 리터럴로 문자열 객체를 만들면
		// 동일한 문자열값이 리터럴 존재하면 그 값을 사용
		String a ="Hello";
		String b ="Java";
		String c ="Hello";
		
		System.out.println(System.identityHashCode(a));
		System.out.println(System.identityHashCode(b));
		System.out.println(System.identityHashCode(c));
		
		// New 연산자로 문자열 객체르 만들 때
		// 동일한 문자열 값이 존재해도 매번 새로 생성
		String d = new String("Hello");
		String e = new String("Java");
		String f = new String("Java");
		
		System.out.println(System.identityHashCode(d));
		System.out.println(System.identityHashCode(e));
		System.out.println(System.identityHashCode(f));
		
		/*****************************************************************/
		String jumin = "123456-1234567";
		
		// String 주요 메서드
		// 1. charAt : 지정한 위치의 문자 하나를 추출
		System.out.println(jumin.charAt(7));
		if(jumin.charAt(7)=='1'){System.out.println("당신은 남자이군요");}
		// 2. subString :문자열에서 시작위치부터 (끝 위치-1)사이의 문자(들) 추출
		System.out.println(jumin.substring(7));
		System.out.println(jumin.substring(7,12));
		int yourYear = Integer.parseInt(jumin.substring(0,2));
		System.out.println(14-yourYear+1);
		// 3. length : 문자열 길이 출력
		System.out.println(jumin.length());
		// 4. split : 문자열을 구분자로 분리해서 배열에 담음
		String zipcode = "123-456 서울 광진구 자양동 321-156";
		String[] zip = zipcode.split(" ");			
		for (int i = 0; i < zip.length; ++i) {System.out.println(zip[i]);}
		// 5. replace : 문자열 중 기존 문자열을 새로운 문자열로 교체
		String msg = "사랑해요,Java!";
		msg=msg.replace("Java", "HTML5");
		System.out.println(msg);
		// 6. indexOf : 내생각!! 맨 처음에 존재하는 '-' 가 있는 배열번호 (순서 아님..)
		System.out.println(jumin.indexOf('-'));
		// 7. lastIndexOf : 내생각!! 맨 마지막에 존재하는 '6'이 있는 배열번호 (순서 아님..)
		System.out.println(jumin.indexOf('6'));
		System.out.println(jumin.lastIndexOf('6'));
		
		/*****************************************************************/
		// Math 주요 메서드
		// 1. round : 반올림 // 5 기준으로 가까운 쪽으로 간다..
		System.out.println(Math.round(9.1));
		System.out.println(Math.round(9.7));
		System.out.println(Math.round(-9.1));
		System.out.println(Math.round(-9.7));
		// 2. ceil : 무조건 올림 // 큰 수로 간다..
		System.out.println(Math.ceil(9.1));
		System.out.println(Math.ceil(9.7));
		System.out.println(Math.ceil(-9.1));
		System.out.println(Math.ceil(-9.7));
		// 3. floor : 무조건 내림,버림 _ 작은 수로 간다..
		System.out.println(Math.floor(9.1));
		System.out.println(Math.floor(9.7));
		System.out.println(Math.floor(-9.1));
		System.out.println(Math.floor(-9.7));
	} // main
} // class




















